package com.atguigu.tingshu.payment.service;

import com.atguigu.tingshu.vo.payment.vo.WxPrePayParamsVo;
import jakarta.servlet.http.HttpServletRequest;

import java.util.Map;

public interface WxPayService {

    /**
     * 微信下单，获取微信小程序拉起本地微信支付所需要参数
     *
     * @param paymentType 支付类型：支付类型：1301-订单 1302-充值
     * @param orderNo     订单编号
     * @return 小程序拉调用wx.requestPayment(Object object)需要参数
     */
    WxPrePayParamsVo getWxPrePayParams(String paymentType, String orderNo);

    /**
     * 小程序轮询查询支付结果-根据商户订单编号查询支付状态
     *
     * @param outTradeNo 商户订单编号
     * @return true-支付成功，false-支付失败
     */
    Boolean queryPayStatus(String outTradeNo);

    /**
     * 微信支付异步回调
     *
     * @param request 微信支付异步回调请求
     * @return 微信支付异步回调响应
     */
    Map<String, String> paySuccessNotify(HttpServletRequest request);
}
